The invention relates to a database interface, particularly to a graphical user interface (GUI) for applications development in a client/server environment.
A client/server environment is one in which an application program is split into two pieces. In an example database application, a "client" program provides the user interface, while a "server" program performs the complex or costly storage or computation management functions, for instance managing the disk location of database rows or applying a selection rule to select the relevant rows of the database.
In existing PC-based client/server application environments there are situations in which many, perhaps hundreds, of users having widely variant levels of database expertise execute sophisticated database queries frequently and regularly on a single, powerful relational database management system (RDBMS), e.g., SQL Server from Microsoft Corporation and SYBASE.RTM. Corporation, SQLBase.RTM. from Gupta Corporation, Inc., or ORACLE.RTM. server from Oracle Corporation. One example of such a situation is one in which a database is used to track information regarding a company's employees. Such a database is relied upon and used many times a day by management staff, accounting staff, and personnel staff for various purposes. Since the people actually using the database are not necessarily fluent in database languages or procedures, it is necessary to have an effective, i.e., easy to use, and efficient interface between the user and the database itself.
Typically, the interface between the user and the database is programmed in advance by a database programmer using an application development package having various database "tools", which range in sophistication from a programming language, e.g., C, to so-called "application builders" which provide software routines to automate some tasks, e.g., window managers to control data presentation effects such as "pop-up" windows, menu bars, and "pull down" menus. Such an interface typically employs graphics, color, and animation, all of which are CPU intensive functions executed by the front-end desktop computer.